﻿using BCCommon.TMS.Order;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BCService.TMS.Order.OrderExtention
{
    /// <summary>
    /// 订单扩展信息
    /// </summary>
    public interface IOrderExtentionService
    {
        /// <summary>
        /// 修改订单扩展订单状态--已到达
        /// </summary>
        /// <param name="orderNo">订单编号</param>
        /// <param name="orderExtentionId">订单扩展编号</param>
        /// <returns></returns>
        bool UpdateOrderStatusArrived(string orderNo, long orderExtentionId);
        /// <summary>
        /// 修改订单扩展订单状态--取货中
        /// </summary>
        /// <param name="orderNo">订单编号</param>
        /// <returns></returns>
        bool UpdateOrderStatusPickup(string orderNo);
        /// <summary>
        /// 修改订单扩展订单状态--运输中
        /// </summary>
        /// <param name="orderNo">订单编号</param>
        /// <param name="orderExtentionId">订单扩展Id</param>
        /// <returns></returns>
        bool UpdateOrderStatusTransporting(string orderNo, long orderExtentionId);
        /// <summary>
        /// 修改订单扩展订单状态--运输中
        /// </summary>
        /// <param name="orderNo">订单编号</param>
        /// <returns></returns>
        bool UpdateOrderStatusTransporting(string orderNo);
        /// <summary>
        /// 修改订单扩展订单状态--已签收
        /// </summary>
        /// <param name="orderNo">订单编号</param>
        /// <param name="orderExtentionId">订单扩展Id</param>
        /// <returns></returns>
        bool UpdateOrderStatusAcceptance(string orderNo, long orderExtentionId);
        /// <summary>
        /// 修改订单扩展订单状态--已完成
        /// </summary>
        /// <param name="orderNo">订单编号</param>
        /// <param name="payer">付款方</param>
        /// <returns></returns>
        bool UpdateOrderStatusComplete(string orderNo, OrderPayer payer);
        /// <summary>
        /// 修改订单扩展订单状态--已取消
        /// </summary>
        /// <param name="orderNo">订单编号</param>
        /// <returns></returns>
        bool UpdateOrderStatusCancel(string orderNo);
        /// <summary>
        /// 修改订单扩展订单状态--下单
        /// </summary>
        /// <param name="orderNo">订单编号</param>
        /// <returns></returns>
        bool UpdateOrderStatusPlaceOrder(string orderNo);
        /// <summary>
        /// 修改订单扩展订单状态--派车中
        /// </summary>
        /// <param name="orderNo">订单编号</param>
        /// <returns></returns>
        bool UpdateOrderStatusDispatching(string orderNo);
    }
}
